/*
* 
* Name				Lawrence Bush
* Student Number	660 220 742
* Email				bushl2@rpi.edu, Lawrence_Bush@dps.state.ny.us
* Class				Distributed Algorithms and Systems (Spring 2002)
* Professor			Costas Busch
*
* Final Project	Implement a Lock-Free Linked List (based on Valois' paper)
*
*/
//
//////////////////////////////////////////////////////////////////////

//	Description of Program Files
//
//		File		Purpose
//		----		-------
//		
//		lock.h		This file declares the Lock class interface.
//					It conatains a CriticalSection pointer member variable.
//					It also conatains a constructor, destructor, and an unLock function.
//		
#if !defined(AFX_lock_H__A892AC06_6934_41DF_A784_5C8E45F6EEED__INCLUDED_)
#define AFX_lock_H__A892AC06_6934_41DF_A784_5C8E45F6EEED__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include "CriticalSection.h"
// *************************************
// *************************************
// ***                               ***
// ***         Lock Structure        *** 
// ***          Declaration          *** 
// ***                               ***
// *************************************
// *************************************

class Lock {
public:
	// Initializes constructors, destructors 
	// and the class interface functions.
	Lock(CriticalSection * pCritSect);
	~Lock();
	void unLock();

private:
	// Initialize the data member.
	// This points to a critical section (my construct)
	// so the class functions know who to operate on.
	CriticalSection * m_pCritical;
};



#endif